package lxs.tool.liberator.common.base.enums.code;

import java.util.Arrays;
import java.util.List;

public class KeyWord {
    public static final List<String> java = Arrays.asList(
            "abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class",
            "continue", "default", "do", "double", "else", "enum", "extends", "final", "finally", "float",
            "for", "if", "implements", " import", "int", "interface", "instanceof", "long", "native", "new",
            "package", "private", "protected", "public", "return", "short", "static", "strictfp",
            "super", "switch", "synchronized", "this", "throw", "throws", "transient", "try", "void",
            "volatile", "while", "goto", "const", "true", "false", "null");


    public static final  List<String> mysql = Arrays.asList("ADD", "ALL", "ALTER",
            "ANALYZE", "AND", "AS",
            "ASC", "ASENSITIVE", "BEFORE",
            "BETWEEN", "BIGINT", "BINARY",
            "BLOB", "BOTH", "BY",
            "CALL", "CASCADE", "CASE",
            "CHANGE", "CHAR", "CHARACTER",
            "CHECK", "COLLATE", "COLUMN",
            "CONDITION", "CONNECTION", "CONSTRAINT",
            "CONTINUE", "CONVERT", "CREATE",
            "CROSS", "CURRENT_DATE", "CURRENT_TIME",
            "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR",
            "DATABASE", "DATABASES", "DAY_HOUR",
            "DAY_MICROSECOND", "DAY_MINUTE", "DAY_SECOND",
            "DEC", "DECIMAL", "DECLARE",
            "DEFAULT", "DELAYED", "DELETE",
            "DESC", "DESCRIBE", "DETERMINISTIC",
            "DISTINCT", "DISTINCTROW", "DIV",
            "DOUBLE", "DROP", "DUAL",
            "EACH", "ELSE", "ELSEIF",
            "ENCLOSED", "ESCAPED", "EXISTS",
            "EXIT", "EXPLAIN", "FALSE",
            "FETCH", "FLOAT", "FLOAT4",
            "FLOAT8", "FOR", "FORCE",
            "FOREIGN", "FROM", "FULLTEXT",
            "GOTO", "GRANT", "GROUP",
            "HAVING", "HIGH_PRIORITY", "HOUR_MICROSECOND",
            "HOUR_MINUTE", "HOUR_SECOND", "IF",
            "IGNORE", "IN", "INDEX",
            "INFILE", "INNER", "INOUT",
            "INSENSITIVE", "INSERT", "INT",
            "INT1", "INT2", "INT3",
            "INT4", "INT8", "INTEGER",
            "INTERVAL", "INTO", "IS",
            "ITERATE", "JOIN", "KEY",
            "KEYS", "KILL", "LABEL",
            "LEADING", "LEAVE", "LEFT",
            "LIKE", "LIMIT", "LINEAR",
            "LINES", "LOAD", "LOCALTIME",
            "LOCALTIMESTAMP", "LOCK", "LONG",
            "LONGBLOB", "LONGTEXT", "LOOP",
            "LOW_PRIORITY", "MATCH", "MEDIUMBLOB",
            "MEDIUMINT", "MEDIUMTEXT", "MIDDLEINT",
            "MINUTE_MICROSECOND", "MINUTE_SECOND", "MOD",
            "MODIFIES", "NATURAL", "NOT",
            "NO_WRITE_TO_BINLOG", "NULL", "NUMERIC",
            "ON", "OPTIMIZE", "OPTION",
            "OPTIONALLY", "OR", "ORDER",
            "OUT", "OUTER", "OUTFILE",
            "PRECISION", "PRIMARY", "PROCEDURE",
            "PURGE", "RAID0", "RANGE",
            "READ", "READS", "REAL",
            "REFERENCES", "REGEXP", "RELEASE",
            "RENAME", "REPEAT", "REPLACE",
            "REQUIRE", "RESTRICT", "RETURN",
            "REVOKE", "RIGHT", "RLIKE",
            "SCHEMA", "SCHEMAS", "SECOND_MICROSECOND",
            "SELECT", "SENSITIVE", "SEPARATOR",
            "SET", "SHOW", "SMALLINT",
            "SPATIAL", "SPECIFIC", "SQL",
            "SQLEXCEPTION", "SQLSTATE", "SQLWARNING",
            "SQL_BIG_RESULT", "SQL_CALC_FOUND_ROWS", "SQL_SMALL_RESULT",
            "SSL", "STARTING", "STRAIGHT_JOIN",
            "TABLE", "TERMINATED", "THEN",
            "TINYBLOB", "TINYINT", "TINYTEXT",
            "TO", "TRAILING", "TRIGGER",
            "TRUE", "UNDO", "UNION",
            "UNIQUE", "UNLOCK", "UNSIGNED",
            "UPDATE", "USAGE", "USE",
            "USING", "UTC_DATE", "UTC_TIME",
            "UTC_TIMESTAMP", "VALUES", "VARBINARY",
            "VARCHAR", "VARCHARACTER", "VARYING",
            "WHEN", "WHERE", "WHILE",
            "WITH", "WRITE", "X509",
            "XOR", "YEAR_MONTH", "ZEROFILL");

    public static   boolean isJavaKeyWord(String word) {
        return java.contains(word);
    }

    public static  boolean isMysqlKeyWord(String word) {
        return mysql.contains(word.toUpperCase());
    }
}
